//
// Created by 28365 on 2025/3/5.
//

#ifndef ODUPDATERSDK_UPDATERECORD_H
#define ODUPDATERSDK_UPDATERECORD_H

#include <set>
#include <cstdint>

class UpdateRecord {

private:
    /**
     * 当前版本
     */
    int version{};

    /**
     * 上次更新未完成的版本，没有则为0
     */
    int notCompletedVersion{};

    /**
     * 未完成的版本中更新完成的资源id，如果<code>notCompletedVersion(未完成的版本) == 0</code>则,<code>resId.isEmpty==true</code>
     */
    std::set<int64_t> resId;

public:

    UpdateRecord();

    UpdateRecord(int version, int notCompletedVersion, const std::set<int64_t> &resId);

    [[nodiscard]] int getVersion() const;

    void setVersion(int version);

    [[nodiscard]] int getNotCompletedVersion() const;

    void setNotCompletedVersion(int notCompletedVersion);

    [[nodiscard]] const std::set<int64_t> &getResId() const;

    void setResId(const std::set<int64_t> &resId);

    [[nodiscard]] bool hasNotCompleted() const;

};


#endif //ODUPDATERSDK_UPDATERECORD_H
